package cn.sumpu.app.guoguojie.dao;

import java.util.List;
import java.util.Map;

import cn.sumpu.app.guoguojie.domain.*;
import cn.sumpu.app.guoguojie.exception.AppBusinessException;

public interface DoingTagShowDao {
	
	/**
	 * author BruceZhang
	 * @param doingTagShow
	 * 添加前台标签
	 * @throws AppBusinessException
	 */
	void addDoingTagShow(DoingTagShow doingTagShow)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param doingTagShow
	 * 更改前台标签
	 * @throws AppBusinessException
	 */
	void updateDoingTagShow(DoingTagShow doingTagShow)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map 父节点ID（parentIdentifier）
	 * @return	这个父节点下的所有标签(呈树状结构)
	 * @throws AppBusinessException
	 */
	List<DoingTagShow> getDoingTagShow(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map 父节点ID（parentIdentifier）
	 * @return	根据父ID取得字节点
	 * @throws AppBusinessException
	 */
	List<DoingTagShow> getDstByParentId(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param id	前台标签ID
	 * @return	一个标签实体
	 * @throws AppBusinessException
	 */
	DoingTagShow getDstById(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map	id
	 * 删除前台标签
	 * @throws AppBusinessException
	 */
	void deleteDoingTagShow(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map	条件：标签/价格/频道号
	 * @return	查询格子屋
	 * @throws AppBusinessException
	 */
	List<Doing> getGridByCondition(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map	条件：标签/价格/频道号
	 * @return	查询格子屋的记录数
	 * @throws AppBusinessException
	 */
	int getGridCount(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map	条件：标签/价格/延迟时间
	 * @return		查询格子屋最新
	 * @throws AppBusinessException
	 */
	List<Doing> getGridNew(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map	条件：标签/价格/延迟时间
	 * @return		查询格子屋最新总记录数
	 * @throws AppBusinessException
	 */
	int getGridNewCount(Map<String, Object> map)throws AppBusinessException;
	
	List<Doing> getGridBruce(int size)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map  doing/微博ID
	 * @return 查询微博的标签
	 * @throws AppBusinessException
	 */
	List<String> getTagByDoing(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map      tags:标签的集合
	 * @return 通过标签集合查询微博
	 * @throws AppBusinessException
	 */
	List<Doing> getDoingByTags(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map       tags:标签的集合
	 * @return 通过标签集合查询微博总数
	 * @throws AppBusinessException
	 */
	Integer getDoingCountByTags(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map  member:会员ID
	 * @return 查询我的分享
	 * @throws AppBusinessException
	 */
	List<Doing> getDoingByMember(Map<String, Object> map)throws AppBusinessException;
	/**
	 * author BruceZhang
	 * @param map  member:会员ID
	 * @return 查询我的分享总数
	 * @throws AppBusinessException
	 */
	Integer getDoingCountByMember(Map<String, Object> map)throws AppBusinessException;
	
	/**
	 * author BruceZhang
	 * @param map
	 * @return 查询我的收藏
	 * @throws AppBusinessException
	 */
	List<Doing> getDlByMember(Map<String, Object> map)throws AppBusinessException;
	/**
     * author BruceZhang
     * @param map  member:会员ID
     * @return 查询我的收藏总数
     * @throws AppBusinessException
     */
    Integer getDlCountByMember(Map<String, Object> map)throws AppBusinessException;
    
    /**
     * author BruceZhang
     * @param map
     * @return 查询话题微博
     * @throws AppBusinessException
     */
    List<Doing> getDoingByDiscuss(Map<String, Object> map)throws AppBusinessException;
    /**
     * author BruceZhang
     * @param map  member:会员ID
     * @return 查询话题微博总数
     * @throws AppBusinessException
     */
    Integer getDoingCountByDiscuss(Map<String, Object> map)throws AppBusinessException;
    
    /**
     * author BruceZhang
     * @param map
     * @return 查询好店微博
     * @throws AppBusinessException
     */
    List<Doing> getDoingBySnick(Map<String, Object> map)throws AppBusinessException;
    /**
     * author BruceZhang
     * @param map  member:会员ID
     * @return 查询好店微博总数
     * @throws AppBusinessException
     */
    Integer getDoingCountBySnick(Map<String, Object> map)throws AppBusinessException;
	
}
